package com.haixinga.commbiz.commons.utils;

import com.alibaba.fastjson.JSONObject;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URL;
import java.net.URLConnection;

public class HttpKit {


	public static boolean isAjax(HttpServletRequest req){

		return "XMLHttpRequest".equals(req.getHeader("x-requested-with"));
	}

	public static void outPutJson(HttpServletResponse res, String jsonStr) throws IOException {

		res.setContentType("text/json;charset=utf-8");
		res.getWriter().write(jsonStr);
		res.getWriter().flush();
		res.getWriter().close();


	}

	public static void outPutJson(HttpServletResponse res, JSONObject json) throws IOException {
		outPutJson(res, json.toString());
	}

	/**
	 * 根据url下载文件
	 *
	 * @param urlString url
	 * @param filename 保存的文件名
	 * @param savePath 保存路径，如路径不存在则创建路径
	 * @throws Exception
	 */
	public static void download(String urlString, String filename, String savePath) throws Exception {
		//构造URL
		URL url = new URL(urlString);
		//打开连接
		URLConnection con = url.openConnection();
		//设置请求超时为5s
		con.setConnectTimeout(5 * 1000);
		// 输入流
		InputStream is = con.getInputStream();

		// 1K的数据缓冲
		byte[] bs = new byte[1024];
		// 读取到的数据长度
		int len;
		// 输出的文件流
		File sf = new File(savePath);
		if (!sf.exists()) {
			sf.mkdirs();
		}
		OutputStream os = new FileOutputStream(sf.getPath() + "\\" + filename);
		// 开始读取
		while ((len = is.read(bs)) != -1) {
			os.write(bs, 0, len);
		}
		// 完毕，关闭所有链接
		os.close();
		is.close();
	}

}
